With 28 years plus of Software/Firmware Engineering experiences in the high technology industry plus
Electrical & Computer Engineering background and strong in Mathematics and Physics with emphasis on Software Architecture, Algorithms, Real-time embedded software in VxWorks using C/C++, and applications
in Java with the best practices of OOD/OOP for successful development.
Extensive background in all phases of project life cycle including requirements gathering, functional
specification, software design, prototype, estimation, implementation, debugging, testing, and documentation.
Strong knowledge in concepts of OO Designing/Programming, Real-time Systems, Multi-Threading.
I am hardworking, responsible, organized, challenged, teamwork, self-motivate with strong in software
development and problem solving skills; and I was recognized as a team player, a frontier and a problem solver.
Technical Expertise:
Languages: C/C++/Java, JSP, Servlets, Flex, HTML, XML, Pascal, and Assembly.
Major Implemented Applications: Time profile, Scheduled Backup, Traveler, Central Patch Management and
Secure Logon for R3000. Network Management Application, Network Planer Application, EPRLS Radio
System Simulator, Over-the-Air Flash ROM Programmer, Keypad Display Controller (KDC) Application, BIT
test application, and AMD/Intel Flash ROM Programmer for EPLRS.
Career Experience:
2010/06/21 – 2025/Present Western Digital - CA Title: Principal Software Engineer
Responsibility: design, develop and maintain Java Test Software for Mobile/Desktop/SSD/Hybrid drives.
Designed and implement Error Reporting mechanism successfully for Reliability Test Software for Automation
Hard Drive Testing Infrastructure in factory.
Developed many different Low Level Software Power Managers to control various Hard Drive Power Cards
like WDPMC, Flexstar, U4X, WIPO and AQAT with FPGA Controller Power Cards; with robustness,
reliability and maintainability with Object Oriented Design model to fit all different power card interfaces.
Designed and developed Framework for more than hundred Java applications for Reliability Test Software, and
about two hundred Java applications for Characterization Test Software for Development and Automation Hard
Drive Test Scripts.
Developed successfully and reliably with many different Hard Drive Test Scripts using the powerful with plug-and-run test commands/modules in the common Write/Read/Verify Java application with Smart Counters
monitoring and using the Package Planner to build and release for User Mode and Customer Specific tests for
Apple, Dell, Fujitsu, Panasonic, Samsung, Sony and NEC customer tests.
Developed successfully and reliably with many different Engineering Development Hard Drive Test Scripts for
Hard Drive Development teams using the powerful Characterization and Reliability Framework with great
Error Handler Software mechanism with many different tests like Emergency Power On/Off test, Egress test,
Full or Partial Stroke Seek test, Butterfly test, ATI test, PMET test, Error Margin test, Coil test, Servo test,
Head on Media test, Load/Unload test, etc...
Successfully developed core Java for multiple-drive and multiple-type drives detection and a very useful
primary Sequential/Random Read/Write application using design pattern and OOP.
Designed and implemented Performance application to test different drives’ IO performance and developed
many other java applications such as Lizard, Power On/Off Test, Seek Test, Load/Unload Test.
Designed and Developed the Package Planner applying State-of-the-Art design with the Legacy 3-Circles
Software Model, the View-Model-Control; to allow developers to define the tests and configurations to
generate Python and XML Test Scripts with selectable test modules and INI configurations options directly
from Java source code Configuration File to reduce human errors.
Implemented file system logging for Reliability Test Software using the powerful apache log4j.
Developed Automation and Schedule Build Process Scripts which can configure to build selectable packages to
build and release, for Reliability Test Software packaging for more than thirty Java test packages using
FinalBuilder to build from the FinalBuilder Web Server.
Developed ListRandomPicker.jar service application as a programming hobby for Friday lunch to randomly
pick a restaurant from a list by category with configurable without repeating for a number of weeks, and send
out email to the team before lunch to help the team gathering in the front and ready for lunch without having to
ask back and forth each person to choose a favor food. This ListRandomPicker.jar can be used in other
organizations or anywhere else with a given email server configuration.
2010/01/04 – 2010/06/18 Pace Americas - CA Title: Senior Software Engineer
Responsibility: design, develop and maintain Java Application/Applets applications for Set-Top-Box (STB).
Designed and developed Built-In-Manual-Tester (BIMT) application using Java language to test Built-In-SelfTest (BIST) for STB which is configurable based on the XML GUI configurations.
Designed and implemented Inventory System for STB using J2EE technology and MySQL database.
Develop and maintain BIST for STB using C/C++ programming language.
Responsibility: design, develop and maintain Java GUI, and backend applications in C for R3000 Filter.
Customized Java Swing components to improve the R3000 GUI with a professional look and feel.
Designed and implemented Time Profile to make sure no allocation timeslot overlapping each other.
Designed and developed Scheduled Backup with remote FTP server for R3000 Configuration and Library Data.
Designed and implemented Secure Logon to allow lockout by User Accounts and/or IP Addresses with login
failures time-span for R3000 Logon Management under Linux environment using iptables command.
Designed and developed R3000 Traveler to allow downloading of updating Library in almost real-time.
Designed and implemented R3000 Central Patch Management to allow downloading and installing patches.
Implemented JTreeTable GUI to control and display Filter Categories for User Profiles.
Implemented and maintained front-end Java GUI and backend applications in Linux environment for R3000.
Developed X-Strike Blocking, Real-time Probes Report, lock, and block pages to support R3000 filtering.
Developed Java application for R3000 to support Internationalization (i18n) and Localization (L10n).
Successfully implemented Sync Utility to sync configuration data from a master R3000 to a target R3000 using C programming language.
1998/05 – 2005/05 Raytheon Company - CA Title: Sr. Software Engineer I
Responsible for designing, developing, maintaining and documenting Java Network Management Application, Java Network Planner and C/C++ Real-Time Embedded Software for the EPLRS Radio Systems with TDMA technology.
Designed and implemented Assembly/C/C++ Firmware Applications including:
Worked very hard to accomplish an interesting project for designing and developing over-the-air Flash ROM
Programmer Application to allow the EPLRS Radios programmable over-the-air via EPLRS military wireless
network using C/C++ programming language under VxWorks RTOS, TCP/IP, and FTP protocols, AMD/Intel
Flash Erasing and Programming algorithms.
Successfully designed and implemented Keypad Display Controller (KDC) Firmware Application under
VxWorks RTOS to allow the users or military personnels to configure the EPLRS using VT100 protocol
Developed a useful Loopback Test Application to test EPLRS hardware devices (CPU, Interrupts, Sensors,
DRAM, Flash ROM, Serial EEPROM, Ethernet, RS232, and many other devices) periodically to monitor
hardware devices performance under different circumstances such as temperature, pressure and data rate
Implemented Built-In Test (BIT) Firmware Application to test EPLRS hardware devices during boot-up for
many different EPLRS Hardware types using C programming language and supported the hardware team to
troubleshoot hardware devices
Developed a useful AMD/Intel Flash Programmer Embedded Application for EPLRS with supporting of multihardware platforms by implemented RS232 Device Driver and AMD/Intel Flash Erasing and Programming
algorithms to support the applications using C programming language run under Radio boot-loader and
VxWorks operating system
Successfully implemented RS232 Device Driver in VxWorks using C programming language.
Designed and implemented Java Applications including:
Developed IP Assignment Application: A Java Application is used for EPLRS Network Planner to assign IP
Address for each Radio automatically using drag & drop from data JTable without conflicting of IP Addresses.
Developed Category Template Application: A Java Application is used for EPLRS Network Planner to build
complicated Radios, Needlines, and IP Address trees based on user defined-template in XML format
Developed and supported EPLRS Network Simulator Application: A Java Application is used to simulate
EPLRS Network without Virtual EPLRS Network Systems and used for training purpose. The application is
built with a complex GUI, 2D Graphics, SNMP protocol, TCP/IP protocol, XML
Developed Radios Assignment Application: A Java Application for EPLRS Network Planner to
add/modify/delete Configuration Parameters for each Radio in a complex GUI with supporting of drag & drop.
Developed Needlines Assignment Application. A Java Application for EPLRS Network Planner to
add/modify/delete a Needline or Needline’s Parameters in a complex GUI, JTree with supporting of drag &
drop and JTable with complicated data matrix table.
Developed Java Chat and FTP Applications running in EPLRS Wireless Network: Chat application was written
in Java using TCP/IP protocol. FTP application was built based on FTP protocol.
Developed Java Trap Monitor, Trap Playback Utilities: Real-time Trap Monitor runs with the EPLRS Network
Management Application to monitor the Network. Trap Playback Utility reads and playbacks the stored trap
file from the Trap Monitor Utility for troubleshooting the activity of the network at anytime.
Designed and developed Real-time Data TableModel: A TableModel class was built based on
AbstractTableModel by using a HashTable that contains unique key and row data for each row entry. The
purpose of this model is to update data in Real-time faster. This model is used in many applications.
Designed and developed Multi-View JTrees of a common TreeModel: A TreeModel class was built based on
TreeModel interface with a Vector contains registered TreeModels. Each instance of TreeModels has its own
type of visible nodes, and they are using the same tree structure. This model is used in many applications.
Implemented Java GUI Prototypes for EPLRS Network Planner and many other useful Java utility applications.
1997/08 – 1998/05 Caltrans - Los Angeles, CA Title: Engineer Assistant
Member of Electrical Engineering Department with responsibility for updating and maintaining Software
Application and Remote Camera System for Freeway Traffic Controller.
Updated and maintained CMS Software in Visual C Application.
Maintained remote cameras for Freeway Traffic Control System.
Certificates, Degrees of Education:
California State Polytechnic University, Pomona, CA.
B.S. in Electrical & Computer Engineering, Cum Laude, June 1998
Successfully Designed & Demonstrated the B.S. Degree Project ‘Infrared Walkie-Talkie Transmitter/Receiver’.
Biography, Inventions, Theories & Theorems and Business websites:
Choose your language in the “Select Language” box on the left of the scrolling text on my websites to translate to your language by Internet
Dictionary. Family name and name, Month and Day (mm/dd/yyyy) and Dot and Comma in numbering format – Vietnamese and English are swapped.
Fun hints: Given that the Bio-photo with hair combed to the right and picture can flip left to right.